最新综述:对话系统之用户模拟器
作者丨唐呈光、戴音培、李永彬、孙健单位丨阿里巴巴智能服务事业部小蜜北京团队
用户模拟器基础
近几年来,强化学习在任务导向型对话系统中得到了广泛的应用,对话系统通常被统计建模成为一个马尔科夫决策过程(Markov Decision Process)模型,通过随机优化的方法来学习对话策略。
任务导向型对话系统用于帮助用户完成某个任务如查电影、找餐馆等,它一般由四个模块组成:自然语言理解模块(Natural Language Understanding, NLU)、对话状态跟踪模块(Dialog State Tracking, DST)、对话策略模块(Dialog Policy, DP)和自然语言生成模块(Natural language Generation, NLG),其中 DST 和 DP 合称为对话管理模块。
有一个总体的对话目标,能够生成上下文连贯的用户动作; 有足够的泛化能力,在语料中未出现的对话情形里也能生成合理的行为; 可以给出定量的反馈评分用于指导模型学习优化。
为了实现以上目标,学术界做了大量的研究工作,从最基础的 bi-gram 模型 [4],到经典实用的 Agenda-based的方法 [2],再到最近基于深度学习的用户模型 [9, 10],用户模拟器的效果得到了显著提升,也为对话模型的训练提供了有效的方法。
图 1 是一个比较典型的用户模拟器 [1],对话开始时用户模拟器基于 User Goal(用户目标)发出一个话术:“Are there any action movies to see this weekend?”(这个周末有什么动作片可以看的吗?),这句话进到对话系统的自然语言理解模块和对话管理模块后,生成一句系统动作:“request_location”(询问地点)。
简便起见,这里省略掉系统的 NLG 模块,系统回复直接送到用户模拟器的用户模型(User Model),通过用户状态更新和行为策略选择,生成用户对话行为:“inform(location=San Francisco)”(告知地点为旧金山),接下来经过 Error Model(可选)和 NLG 模块,生成对应的自然语言,比如:“San Francisco, please.”(帮我订旧金山的)。以此往复,用户模拟器和对话系统持续多轮交互,直到对话结束。
1. 用户目标(User Goal):用户模拟的第一步就是生成一个用户对话的目标,对话系统对此是不可知的,但它需要通过多轮对话交互来帮助用户完成该目标。一般来说,用户目标的定义和两种槽位相关: 可告知槽(informable slots)和可问询槽(requestable slots),前者形如“槽=值”是用户用于查询的约束条件,后者则是用户希望向系统问询的属性。
例如:用户目标是 “inform(type=movie, genre=action, location=San Francisco, date=this weekend),request(price)”表达的是用户的目标是想要找一部本周在 San Francisco 上映的动作片,找到电影后再进一步问询电影票的价格属性。有了明确的对用户目标的建模,我们就可以保证用户的回复具有一定的任务导向,而不是闲聊。
2. 用户模型(User Model):用户模型对应着对话系统的对话管理模块,它的任务是根据对话历史生成当前的用户动作。用户动作是预先定义好的语义标签,例如“inform, request, greet, bye”等等。用户动作的选择应当合理且多样,能够模拟出真实用户的行为。用户模型是用户模拟器的核心组成部分,在接下来的章节里我们将会详细介绍各种具体模型和方法。
3. 误差模型(Error Model):它接在 User Model 下游,负责模拟噪声,对用户行为进行扰动以模拟真实交互环境下不确定性。简单的方式有:随机用不正确的意图替换正确的意图、随机替换为不正确的槽位、随机替换为不正确的槽值等;复杂的方式有模拟基于 ASR 或 NLU 混淆的错误。
用户模拟器的实现方法
基于规则的方法
基于议程的方法通过一个栈的结构把对话的议程定下来,对话的过程就变成进栈和出栈的动作,上下文关联性很强,保证了用户动作生成的一致性,一般不会出现异常用户行为。但是,该方法在对话行为灵活性和多样性比较欠缺,在实操层面可以通过引入一些随机性提升灵活度。
基于议程的方法
代表论文:The Hidden Agenda User Simulation Model
论文链接:https://ieeexplore.ieee.org/document/4806280/?arnumber=4806280
用户动作选择模型
状态更新模型
已知 S=(A,G),根据概率的链式法则和条件独立性假设,在用户模拟器接收到
如果不对 A'' 和 G'' 做限制,模型可能的状态转移空间太大,参数太多而不能直接人工指定,甚至通过大量的训练数据都不能获得一个可靠的参数估计。但如果假设 A'' 是从 A' 推导出来的,G'' 是从 G' 推导出来的,那么在每种情况下,仅需要有限个数的原子操作就能描述这个状态转移过程。
为了简化起见,只考虑入栈操作,栈底部 1 到 N' 的元素是保持不变的,那么 Agenda 更新模型可以改写为以下公式:
该公式表示 A'' 新增 N''-N' 个元素,而栈底元素不变。作者假设在
上式表示的是每一个系统 act 会触发一个入栈操作,同时该操作还和 Goal 有关。此时,模型已经足够简单,都可以通过编写人工规则来实现当接收到系统 act 后的逻辑,比如:当
Goal 更新模型
基于模型学习的方法
通过人工编写规则尽管落地性强,精准率高,但是成本很高,因此寻求数据驱动的模型化方法是一个很好的途径。利用对话语料进行端到端训练的效果优于基于议程的规则方法,它的优点是数据驱动,节省人力;但缺点是复杂对话建模困难,对数据数量要求很高,因此对于一些对话语料稀缺的领域效果很差。
在用户模型的序列建模上,论文 [16] 利用隐马尔科夫模型来推断每一轮的用户动作。论文 [8] 则研究了基于概率图的用户模型,如图 3 所示,g 是用户目标, 分别是系统动作、用户隐动作,对话历史和用户观测动作,通过 EM 算法优化模型参数。
代表论文1:A Sequence-to-Sequence Model for User Simulation in Spoken Dialogue Systems
之前的基于概率建模的方法往往存在着几点不足:
无法考虑对话历史; 需要刻板的结构来保证用户行为的一致性; 严重依赖于特定领域; 在一次对话期间无法输出多个用户意图。
用户模拟器的一个重要特征是它鼓励整个对话中的连贯行为,而由于之前的概率模型从易于实现的角度,基本不考虑很长的对话历史和单句多意图的情况,导致了整个对话效率比较低下。基于此作者提出了一种 Sequence-to-sequence 的用户模拟器模型(如图 4 所示),它将对话上下文序列
在每次对话开始之前,统一的构建出一个 Goal G=(C,R),对于餐馆查询任务而言,约束条件通常指的是菜品口味、菜品价格以及餐馆所在方位,问询内容为以下槽位:餐馆名称、餐馆地址、餐馆电话等。
在第 t 轮对话,一个上下文
在每次对话的过程中,会根据 dialogue acts 的个数以及 Goal 的状态,对以上 4 部分进行 one-hot 编码,从而得到对话上下文的向量化表示。如下表所示:
然后再将向量
作者也提到可以训练一个模型,让它直接输出最终的行为,比如 request_area,inform_pricerange。这种方式的优点是不需要写启发式规则,可以做到更细粒度的建模,这也是作者推荐的方式。最后实验结果证明效果优于基于议程的方法。
代表论文2:Neural User Simulation for Corpus-based Policy Optimization for Spoken Dialogue Systems
论文链接:https://aclweb.org/anthology/papers/W/W18/W18-5007/
上一篇论文中的一些端到端系统虽然对整个对话历史都进行了跟踪,并且用户的行为是从数据中学习得到的,但是依旧存在两个问题:1)没有对用户的目标改变(goal change)进行建模;2)只在语义层面进行用户模拟,需要耗费人力标注出每轮用户语句的语义标签进行模型训练,而不是直接利用自然语句进行训练。
有了每轮的用户目标,NUS 通过 RNN 来生成用户语句, 如图 5 所示:
例如出现了 request(area) 则将
NUS 生成的回复是去词汇化的自然语句,经过后处理则得到了用户的自然语言回复。论文为了论证 NUS 效果优异 Agenda-based User Simulator (ABUS), 提出了一个交叉模型评估的方法,即在一个 User Simulator 上训练一个 agent,在其他 User Simulator 上测试该 agent,如果 agent 效果依旧很好,说明用于训练的 User Simulator 是更加贴近真实用户。
最终实验结果证明,在 NUS 上训练得到了的 agent,在 ABUS 和真实用户上测试得到的成功率均优于 ABUS,而在 ABUS 上训练得到的 agent 效果只在 ABUS 上测试好。
代表论文:Iterative Policy Learning in End-to-End Trainable Task-Oriented Neural Dialog Models
论文链接:https://arxiv.org/abs/1709.06136v1
用户模型和对话管理模型功能十分接近,因此对用户模型也采用强化学习的框架,将用户模拟器和对话系统联合优化是一个可行的方向。论文在对用户模拟器和对话系统分别采用了 RNN 进行端到端的建模并使用同一个回报函数优化,两者交替训练共同最大化累计回报。
为了降低 REINFORCE 策略梯度优化的方差,论文采用 Advantage Actor-Critic (A2C) 算法,并使用 ε-softmax 进行策略探索,在 DSTC2 数据集上进行了初步实验,结果如下:
代表论文:User Simulation in Dialogue Systems using Inverse Reinforcement Learning
论文链接:https://core.ac.uk/download/pdf/52801075.pdf
通常最优策略会通过专家行为近似得到,例如请经验丰富的专家充当用户直接给出合理的回复。需要注意的是模仿学习(imitation learning)和 IRL 不同,模仿学习是直接通过专家行为的数据优化策略而不估计回报函数。
具体的 IRL 算法如下:
论文中实验结果表明,通过对 IRL 找出来的策略集合 Π 进行加权随机采样得到的用户对话策略相比于固定的用户策略(专家行为)有更短的对话轮数和更高的 reward 值。说明了 IRL 方法在估计出回报函数的同时也能得到更加多样真实的策略,这在某些场景下将会非常有用。
在有高质量语料库的情况下,我们可以考虑直接根据对话上下文,从语料库中推荐出最恰当的用户语句作为用户模拟器的回复。Amazon 的论文就是根据这样的想法设计了基于协同过滤算法的用户模拟器。首先,论文论证了在客服领域,对话系统的语句表达相比于用户的表达通常比较规整单一,因此可以对所有的用户语句进行粗略的标注,如图 8 所示:
▲ 图8. (a) 每个对话被转换成语义标签序列 (b) 正在进行的对话和语料库对话的匹配示意图,红橙色表示系统标签,绿色表示用户语句
具体的算法如下:
能够衡量生成的对话动作的一致性; 评价方式和具体的任务无关; 可以从目标信息中自动化地计算出一个标量值,而无需人工干预。
用户模拟器的评价方式
能够衡量生成的对话动作的一致性; 评价方式和具体的任务无关; 可以从目标信息中自动化地计算出一个标量值,而无需人工干预。
通常用户模拟器的评价指标可以分为单轮级别度量 (turn-level metrics) 和对话级别度量 (dialog-level metrics)。
单轮级别度量主要针对用户动作的语义标签,最常见度量是精确率,召回率和 F1 得分,对于每一轮可以计算:
但是以上的度量不能评估用户模型泛化能力,例如某个用户动作是合理的但因为在对话数据中并未出现,如果预测了就会导致得分低。因此我们还可以将用户动作的预测概率分布P和真实概率分布 Q 之间的 KL 距离作为度量,从概率分布上评估用户预测模型的合理性。
用户模拟器面临的挑战
总结
本综述详细地介绍了目前学界的常用模型和方法。由于学界一般关注的对话任务是订餐馆、订电影票、订飞机票这类简单的填槽(slot-filling)任务,对话的状态和动作空间有限,不需要太复杂的模型和大规模的语料就能获得比较好的效果,因此在数据充分的情况下,基于模型学习的方法在效果上普遍优于基于规则的方法。
而在工业界真实的场景里,除了上面的简单任务,占比更多的是“查话费”、“开发票”、“挂失信用卡”这类中等复杂度的场景,它的特点是机器人有外部 API 调用、基于 API 返回结果的分支判断、异常兜底逻辑、多个子意图的串联、多个填槽过程等,对话的状态和动作空间迅速扩大,需要有足量的训练语料才能保证用户模拟器的覆盖率。
因此在实际生产实践中,我们需要划分好场景,重新制定更加贴近业务的用户动作标签,统计出真实的用户目标,再选择最合适自身场景的模型来构建模拟器。
参考文献
[1] Li X, Chen Y N, Li L, et al. End-to-end task-completion neural dialogue systems[J]. arXiv preprint arXiv:1703.01008, 2017.
[2] Schatzmann J, Young S. The hidden agenda user simulation model[J]. IEEE transactions on audio, speech, and language processing, 2009, 17(4): 733-747.
[3] Schatzmann J, Thomson B, Weilhammer K, et al. Agenda-based user simulation for bootstrapping a POMDP dialogue system[C]//Human Language Technologies 2007: The Conference of the North American Chapter of the Association for Computational Linguistics; Companion Volume, Short Papers. Association for Computational Linguistics, 2007: 149-152.
[4]W. Eckert, E. Levin, and R. Pieraccini. 1997. User modelling for spoken dialogue system evaluation. In Proc. of ASRU ’97, pages 80–87.
[5]E. Levin, R. Pieraccini, and W. Eckert, “A stochastic model of human machine interaction for learning dialog strategies,” IEEE Trans. Speech Audio Process., vol. 8, no. 1, pp. 11–23, Jan. 2000.
[6]K. Scheffler and S. J. Young. 2001. Corpus-based dialogue simulation for automatic strategy learning and evaluation. In Proc. NAACL Workshop on Adaptation in Dialogue Systems, pages 64–70.
[7]O. Pietquin. 2004. A Framework for Unsupervised Learning of Dialogue Strategies. Ph.D. thesis, Faculte Polytechnique de Mons.
[8] Lee S, Eskenazi M. An unsupervised approach to user simulation: toward self-improving dialog systems[C]//Proceedings of the 13th Annual Meeting of the Special Interest Group on Discourse and Dialogue. Association for Computational Linguistics, 2012: 50-59.
[9] Layla El Asri, Jing He, and Kaheer Suleman. 2016. A sequence-to-sequence model for user simulation in spoken dialogue systems. Proceedings of the 17th Annual Conference of the International Speech Communication Association, pages 1151–1155
[10] Kreyssig F, Casanueva I, Budzianowski P, et al. Neural user simulation for corpus-based policy optimisation for spoken dialogue systems[J]. SIGDIAL, 2018.
[11] Chandramohan S, Geist M, Lefevre F, et al. User simulation in dialogue systems using inverse reinforcement learning[C]//Interspeech 2011. 2011: 1025-1028.
[12] Devin Didericksen,Oleg Rokhlenko, Kevin Small, Li Zhou, Jared Kramer. Collaboration-based User Simulation for Goal-oriented Dialog Systems. NIPS 2017
[13] Liu B, Lane I. Iterative policy learning in end-to-end trainable task-oriented neural dialog models[C]//2017 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU). IEEE, 2017: 482-489.
[14] Pietquin O, Hastie H. A survey on metrics for the evaluation of user simulations[J]. The knowledge engineering review, 2013, 28(1): 59-73.
[15] Shah P, Hakkani-Tür D, Tür G, et al. Building a conversational agent overnight with dialogue self-play[J]. NAACL, 2018.
[16] H. Cuayahuitl, S. Renals, O. Lemon, and H. Shimodaira, “Human computer dialogue simulation using hidden Markov models,” in Proc. ASRU, San Juan, Puerto Rico, 2005
点击以下标题查看更多往期内容:
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
▽ 点击 | 阅读原文 | 获取最新论文推荐